home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #054 (1990)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #054 (1990)(Amiga User Group Deutschland e.V.).adf
/
DAM
/
DAM.s
< prev
Wrap
Text File
|
1989-07-02
|
6KB
|
287 lines
*******************************************************
* *
* This is Public Domain ! Do with it what you like !!!!
* *
*******************************************************
;
;
;DAM = Display available Memory
; ~ ~ ~
;
; Autor : Sascha Groening
; Blaustr.: 13
; 8360 Deggendorf
; West-Germany
;
;
; Nutzen :
;
; Zeigt verfuegbaren Speicher in kleinem Window an .
;
; DAM ist der meines Wissens kuerzeste Memory-Displayer
; (700 Byte lang)
;
; ==> fuer Leute mit chronisch wenig Speicher besonders geeignet
;
;
;
; Programm wurde fuer den A68K Public Domain Assembler
; BLINK Public Domain Linker geschrieben
;
; (A68K :Fish Disk Nr.:110 )
; (BLINK:Fish Disk Nr.: 40 )
;
;
; Assemblieren : A68K SaveKick.s
; BLINK SaveKick.o
;
;
MEMF_PUBLIC equ $1
MEMF_CHIP equ $2
MEMF_FAST equ $4
SysBase equ 4
OldOpenLibrary equ -408
CloseLibrary equ -414
AvailMem equ -216
GetMsg equ -372
ReplyMsg equ -378
Delay equ -198
CloseWindow equ -72
OpenWindow equ -204
SetFont equ -66
OpenFont equ -72
CloseFont equ -78
Text equ -60
Move equ -240
TOPAZ_EIGHTY equ $8
FS_NORMAL equ $0
FPF_ROMFONT equ $1
wd_RPort equ $32
wd_UserPort equ $56
MP_SIGBIT equ $0F
SMART_REFRESH equ $0000
WINDOWDRAG equ $0002
WINDOWDEPTH equ $0004
WINDOWCLOSE equ $0008
CLOSEWINDOW equ $00000200
WBENCHSCREEN equ $0001
CALLGRAF macro
movea.l GfxBase,a6
jsr \1(a6)
endm
CALLINT macro
movea.l IntBase,a6
jsr \1(a6)
endm
CALLEXEC macro
movea.l SysBase,a6
jsr \1(a6)
endm
CALLDOS macro
movea.l DOSBase,a6
jsr \1(a6)
endm
***************************************************************
; Open dos int graf lib
_main
lea.l dosname(pc),a1 ; open DOS-Library
CALLEXEC OldOpenLibrary
move.l d0,DOSBase
beq abbruch
lea.l intname(pc),a1 ; open INTUITION-Library
jsr OldOpenLibrary(a6)
move.l d0,IntBase
beq closedos
lea.l grafname(pc),a1 ; open GRAPHICS-Library
jsr OldOpenLibrary(a6)
move.l d0,GfxBase
beq closeint
; open window
lea.l windowdef(pc),a0 ; Window öffnen
CALLINT OpenWindow
move.l d0,Window
beq closegraf
; open font
lea.l FONT(pc),a0 ; Topaz-80 (ROM-Zeichensatz)
CALLGRAF OpenFont ; öffnen und benutzen
move.l d0,Font
beq closewindow
movea.l d0,a0
movea.l Window,a1
movea.l wd_RPort(a1),a1
move.l a1,RPort
jsr SetFont(a6)
***************
; Hauptschleife
Schleife
moveq.l #MEMF_PUBLIC,d1 ; Freies RAM feststellen
CALLEXEC AvailMem
move.l d0,d2
lea.l buffer1(pc),a0
bsr decl ;Zahl in ASCII-Code umwandeln
moveq.l #MEMF_CHIP,d1 ; dasselbe wie oben, nur mit Chip-RAM
jsr AvailMem(a6)
move.l d0,d2
lea.l buffer2(pc),a0
bsr decl
moveq.l #30,d0
moveq.l #7,d1
movea.l RPort,a1
CALLGRAF Move
lea.l Text1,a0
moveq.l #28,d0
movea.l RPort,a1
jsr Text(a6)
moveq.l #40,d1 ; anderen Task Zeit lassen
CALLDOS Delay
movea.l Window,a0 ; CloseWindow ?
movea.l wd_UserPort(a0),a0
CALLEXEC GetMsg
tst.l d0
beq.s Schleife
*******************
; Cleanup ()
movea.l d0,a1
jsr ReplyMsg(a6)
fini
movea.l Font,a1 ; alles schließen
CALLGRAF CloseFont
closewindow
movea.l Window,a0
CALLINT CloseWindow
closegraf
movea.l GfxBase,a1
CALLEXEC CloseLibrary
closeint
movea.l IntBase,a1
CALLEXEC CloseLibrary
closedos
movea.l DOSBase,a1
CALLEXEC CloseLibrary
abbruch
clr.l d0
rts
******************************
; Unterprogs
;
; Konvertiere d2.l -> Dec-String ab (buffer)
;
decl
moveq.l #5,d0
move.l a0,-(a7)
adda.l #9,a0
loop6
divu #10,d2 ;d2/10==>Quotient im niederwertigen
swap d2 ; Wort,Rest im hoeherwertigen
moveq.l #15,d1 ;
and.l d2,d1 ; Rest-->d1 +48-->Ziffer(0-9)
addi.l #48,d1 ;
move.b d1,-(a0) ;eintragen
swap d2 ;Quotient
and.l #$ffff,d2 ; \vom Rest befreien
dbra d0,loop6 ;(dbf=dbra nur andere Schreibweise) \und weiter wandeln
moveq.l #5,d0 ;Nullen am Anfang durch Leerzeichen
movea.l (a7)+,a0 ;ersetzen
addq.l #3,a0
loop7
cmpi.b #48,(a0) ;eine 0 ?
bne fini3
move.b #32,(a0) ;durch Leerzeichen ersetzen
addq.l #1,a0
dbra d0,loop7
fini3
rts
W_Gadgets equ WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE
W_Extras equ SMART_REFRESH
Activation equ W_Gadgets!W_Extras
windowdef
dc.w 128,0
dc.w 308,10
dc.b -1,-1
dc.l CLOSEWINDOW
dc.l Activation
dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.l 0
dc.w 135,21
dc.w 135,36
dc.w WBENCHSCREEN
FONT dc.l fontname
dc.w TOPAZ_EIGHTY
dc.b FS_NORMAL
dc.b FPF_ROMFONT
cnop 0,2
intname dc.b 'intuition.library',0
grafname dc.b 'graphics.library',0,0
dosname dc.b 'dos.library',0
fontname dc.b 'topaz.font',0,0
cnop 0,2
Text1 dc.b ' RAM'
buffer1 dc.b ' '
Text2 dc.b 'Chip'
buffer2 dc.b ' '
cnop 0,2
IntBase ds.l 1
GfxBase ds.l 1
DOSBase ds.l 1
Window ds.l 1
RPort ds.l 1
Font ds.l 1
END